diff --git a/system/codeigniter/Common.php b/system/codeigniter/Common.php
index 8ac80d6..07b468f 100644
--- a/system/codeigniter/Common.php
+++ b/system/codeigniter/Common.php
@@ -204,7 +204,7 @@
 	static $LOG;
 	
 	$config = get_config();
-	if ($config['log_errors'] === FALSE)
+	if ($config['log_threshold'] == 0)
 	{
 		return;
 	}
@@ -255,7 +255,7 @@
 	
 	// Should we log the error?  No?  We're done...
 	$config = get_config();
-	if ($config['log_errors'] === FALSE)
+	if ($config['log_threshold'] == 0)
 	{
 		return;
 	}
diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php
index 3370c91..7fecabd 100644
--- a/system/libraries/Profiler.php
+++ b/system/libraries/Profiler.php
@@ -94,7 +94,12 @@
  	
 	// --------------------------------------------------------------------
 
-
+	/**
+	 * Compile Queries
+	 *
+	 * @access	private
+	 * @return	string
+	 */	
 	function _compile_queries()
 	{
 		$output  = "\n\n";
@@ -130,7 +135,13 @@
 	}
 	
 	// --------------------------------------------------------------------
-	
+
+	/**
+	 * Compile $_POST Data
+	 *
+	 * @access	private
+	 * @return	string
+	 */	
 	function _compile_post()
 	{	
 		$output  = "\n\n";
diff --git a/system/libraries/Session.php b/system/libraries/Session.php
index 16f373f..8390fd6 100644
--- a/system/libraries/Session.php
+++ b/system/libraries/Session.php
@@ -112,10 +112,8 @@
 			}
 		}
 		
-		// Do we need encryption?
-		$this->encryption = $this->CI->config->item('sess_encrypt_cookie');
-		
-		if ($this->encryption == TRUE)	
+		// Do we need encryption?		
+		if ($this->CI->config->item('sess_encrypt_cookie') == TRUE)	
 		{
 			$this->CI->load->library('encrypt');
 		}		
@@ -160,7 +158,6 @@
 			$this->sess_gc();
 		}	
 	}
-	// END sess_run()
 	
 	// --------------------------------------------------------------------
 	
@@ -257,7 +254,6 @@
 		
 		return TRUE;
 	}
-	// END sess_read()
 	
 	// --------------------------------------------------------------------
 	
@@ -285,7 +281,6 @@
 					0
 				);
 	}
-	// END sess_read()
 	
 	// --------------------------------------------------------------------
 	
@@ -321,7 +316,6 @@
 		$this->userdata['last_visit'] = 0;		
 		$this->sess_write();
 	}
-	// END sess_read()
 	
 	// --------------------------------------------------------------------
 	
@@ -349,7 +343,6 @@
 		// Write the cookie
 		$this->sess_write();
 	}
-	// END sess_update()
 	
 	// --------------------------------------------------------------------
 	
@@ -370,7 +363,6 @@
 					0
 				);
 	}
-	// END sess_destroy()
 	
 	// --------------------------------------------------------------------
 	
@@ -396,7 +388,6 @@
 			log_message('debug', 'Session garbage collection performed.');
 		}    
     }
-	// END sess_destroy()
 	
 	// --------------------------------------------------------------------
 	
@@ -411,7 +402,6 @@
 	{
     	return ( ! isset($this->userdata[$item])) ? FALSE : $this->userdata[$item];
 	}
-	// END sess_destroy()
 	
 	// --------------------------------------------------------------------
 	
@@ -440,7 +430,6 @@
 	
     	$this->sess_write();
 	}
-	// END set_userdata()
 	
 	// --------------------------------------------------------------------
 	
@@ -467,7 +456,6 @@
 	
     	$this->sess_write();
 	}
-	// END set_userdata()
 	
 	// --------------------------------------------------------------------
 	
@@ -494,7 +482,7 @@
      	
      	return $vals;
 	}
-	// END strip_slashes()
+
 }
 // END Session Class
 ?>
\ No newline at end of file
